#pragma once

#include <Vec3.h>

#include "Framebuffer.h"
#include "Texture.h"
#include "DepthTexture.h"
#include "..\RenderEngineUtils\Camera.h"
#include "..\common\headers\IRenderable.h"

class ShadowMapper
{
private:
	int texWidth;
	int texHeight;

	Framebuffer *framebuffer;

	DepthTexture *shadowTex;
	Texture *colorTex;

public:
	ShadowMapper(Framebuffer *framebuffer, int width, int height);
	~ShadowMapper(void);

	UINT GetShadowMap(sm::Vec3 lightPosition, sm::Vec3 lightTarget, IRenderable *renderable);
};
